package com.dragon.modules.yuegou.service.member;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.common.web.PageRequest;
import com.dragon.modules.yuegou.entity.member.FavoriteEntity;
import com.dragon.modules.yuegou.enums.member.FavoriteType;
import com.dragon.modules.yuegou.model.member.Member;

import java.util.List;

/**
 * 会员收藏 服务接口
 *
 * @author pbuilder generated
 * @date 2019-03-19 08:59:40
 * @version 2.0
 */
public interface FavoriteService extends IService<FavoriteEntity> {


    /**
     * 查询店铺粉丝数
     * @param merchantId
     * @return
     */
	Long totalTodayFansNum(String merchantId);

    /**
     * 会员收藏商铺
     * */
	void collection(String merchantId, String busdId,String memberId);

	/**
	 * 会员收藏-其他
	 * */
	void collectionByType(String busdId,String memberId,String objectId, Integer type);

	/**
	 * 
	 * @param page
	 * @param merchantId
	 * @return
	 */
	List<Member> merchantFans(PageRequest page, String merchantId);

	/**
	 * 关注商户
	 */
	void followMerchant(String busdId,String merchantId,String memberId);

	/**
	 * 取消关注
	 */
	void cancelFollowMerchant(String busdId, String merchantId,String memberId);

	/**
	 * 根据类型判断是否关注
	 * @param busdId
	 * @param objectId
	 * @param type
	 * @return
	 */
	boolean isFavoriteByType(String busdId,String memberId,String objectId, FavoriteType type);

	/**
	 * 是否关注商户
	 * @param busdId
	 * @param merchantId
	 * @return
	 */
	boolean isFavoriteMerchant(String busdId,String memberId,String merchantId);

	/**
	 * 是否已关注该商品
	 * @param memberId 用户id
	 * @param spuId 商品id
	 * @return 关注为true  ，未关注为false
	 */
	boolean isFavoriteSpu(String memberId, String spuId);


    /**
     * 取消商品收藏
     * @param busdId
     * @param memberId
     * @param id
     */
    void cancelFollowSpu(String busdId, String memberId, String id);
}